package com.dm.webCrawler.framework.task;

import com.dm.webCrawler.project.buss.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;

@Configuration      //1.主要用于标记配置类，兼备Component的效果。
@EnableScheduling   // 2.开启定时任务
public class SchedulingTask {

    @Autowired
    SinaCrawler sinaCrawler;
    @Autowired
    IndiatimesCrawler indiatimesCrawler;

    @Autowired
    UniindiaCrawler uniindiaCrawler;

    @Autowired
    private JanesCrawler janesCrawler;

    @Autowired
    private USDefenseCrawler uSDefenseCrawler;

    @Autowired
    private USCommerceCrawler uSCommerceCrawler;

    /**
     * 新浪微博
     */
    //添加定时任务
//    @Scheduled(cron = "0 * * * * ?")
    //或直接指定时间间隔，例如：5秒
    //@Scheduled(fixedRate=5000)
    private void sinaWeboTask() {
        sinaCrawler.start(SinaCrawler.searchType.HOT);
    }

    /**
     * 印度时报
     */
    //添加定时任务
//    @Scheduled(cron = "0 * * * * ?")
    //或直接指定时间间隔，例如：5秒
    //@Scheduled(fixedRate=5000)
    private void indiatimesTask() {
        try {
            indiatimesCrawler.start(6);
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("印度时报爬虫执行失败！");
        }
    }
    /**
     * 印度联合新闻社
     */
    //添加定时任务
//    @Scheduled(cron = "0 * * * * ?")
    //或直接指定时间间隔，例如：5秒
    //@Scheduled(fixedRate=5000)
    private void uniindiaTask() {
        try {
            uniindiaCrawler.start(6);
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("印度联合新闻社爬虫执行失败！");
        }
    }


    /**
     * 简式防务周刊
     */
    //添加定时任务
//    @Scheduled(cron = "0 * * * * ?")
    //或直接指定时间间隔，例如：5秒
    //@Scheduled(fixedRate=5000)
    private void janesTask() {
        try {
            janesCrawler.start(6);
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("简式防务周刊爬虫执行失败！");
        }
    }

    /**
     * 美国国防部新闻
     */
    //添加定时任务
//    @Scheduled(cron = "0 * * * * ?")
    //或直接指定时间间隔，例如：5秒
    //@Scheduled(fixedRate=5000)
    private void uSDefenseTask() {
        try {
            uSDefenseCrawler.start(6);
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("美国国防部新闻爬虫执行失败！");
        }
    }

    /**
     * 美国商务部新闻
     */
    //添加定时任务
    @Scheduled(cron = "0 * * * * ?")
    //或直接指定时间间隔，例如：5秒
    //@Scheduled(fixedRate=5000)
    private void uSCommerceTask() {
        try {
            uSCommerceCrawler.start(6);
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("美国商务部新闻爬虫执行失败！");
        }
    }

}
